home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
PC-SIG: World of Games
/
PC-SIG World of Games (CDRM1080710) (1993).iso
/
ENT
/
DISK1434.ZIP
/
SPRINGER.DOC
< prev
next >
Wrap
Text File
|
1989-01-09
|
24KB
|
529 lines
SPRINGER
A Chess Playing Program for the IBM PC
Version 1.0
Released 9 January 1989
(C) Copyright 1989 by Ken Goodman
INTRODUCTION
------------
Springer is a chess program for the IBM PC which offers several
levels of varying playing strength to challenge the vast majority
of human players, as well as an excellent on-screen display of
the chess position. The playing strength of this program is,
quite frankly, not quite as good as that of the best commercial
programs, though most human players should find it more than
adequate in this respect. In several ways (including playing
strength) I believe this program is far superior to all others I
have seen released as shareware products or in the public domain.
You should have no trouble using the program if you already know
how to play chess. Springer starts out in its normal playing
mode, with the board shown on-screen in the format of a standard
chess diagram. Moves are entered by using the "arrow" keys to
move an indicator around the chess board and the Enter key to
select the piece you want to move and the square you want to move
it to. If you press an invalid key, a help screen/menu will
appear, providing brief instructions and allowing single-key
access to special functions such as saving/recalling games in
disk files.
This document provides some detailed information about Springer
and how to use the program, but assumes that you already know the
rules of chess. Novices should be aware that Springer knows and
makes use of the special moves of Castling and En Passant
capture. Please refer to a suitable chess book or primer for
details of these special moves or other rules of chess.
The major features offered by Springer are:
* 10 levels of play to suit almost any user's playing strength
* Excellent display of chess board with Color Graphics Adapter
* Good display of board on a monochrome or text-only system
* Diagram of chess position on Epson or compatible printer
* Printout of complete game record in Algebraic chess notation
* Ability to save and recall complete games on disk
* Easy entry of moves using arrow keys and on-screen cursor
* Referee mode to supervise games between two players
* Autoplay mode: any level against any other level
* Step backward/forward to review game move-by-move
NORMAL PLAY
-----------
Springer starts by displaying a banner to identify the program
and version, then after a short delay enters its NORMAL playing
mode. The starting position is displayed, and the game begins
with the user playing the White pieces against the computer
opponent "Springer Lev1". The message area to the right of the
chess board shows that it is "Your move." Please note that the
players are identified by names printed at the top and bottom of
the board. As in standard chess diagrams, White starts from the
bottom of the diagram, and Black from the top. Also note that
NORMAL playing mode is indicated in the upper right corner of the
screen.
Press a key and the square containing your King is highlighted,
and the message area asks "Piece?" To begin a game, make a move
by selecting a piece to move, then a square to move it to. Use
the cursor keys (up, down, left and right arrows, and Home, PgUp,
End and PgDn for diagonal directions) to move the highlighted
square (the cursor) around on the board. After moving the cursor
to highlight the piece you wish to move, press the Enter key,
then move the cursor to the square you wish to move to in answer
to the "Destination?" prompt. Springer will then show the move
being made on the board, then choose and make a move of its own.
If you try to make an illegal move, Springer will tell you so,
and the move entry process will be repeated.
Special moves: Castling is entered by moving your King two
squares left or right; the Rook's movement will automatically be
shown on the board to complete the move. En Passant captures are
entered just as the normal pawn capture would be entered: by
selecting the starting and ending squares of the capturing pawn.
Want to use Springer's commands to change playing level, swap
sides, etc? Press the ESC key at your turn and a menu and brief
instructions will be displayed. If you know the simple key
sequences for the commands you want to use, you can bypass the
menu by pressing the * key instead of ESC, then the primary
command key. Bypassing the menu in this way keeps the board
display on the screen for commands that don't require additional
2
input. Springer also accepts commands typed on the command line
used to run the program. In this case, * is used to begin a
command, and / substitutes for the Enter key required by some
commands.
Some examples: To play Black against the computer, use the
Swap-sides command at the beginning of the game (using the S
option from the menu, or by pressing the keys * S). To change to
playing level 5, the command sequence * (or ESC for the menu) O
(for Options) L (for Level) 5 / is required. Starting Springer
from DOS with the command line "SPRINGER *OL5/*S" will start a
game with the user playing Black against "Springer Lev5".
If you have a suitable graphics adapter, Springer automatically
shows the board using CGA 320x200 graphics and 4 colors, while if
your computer has a text-only display adapter, the board is shown
using text and special characters to represent the pieces. If
you have a graphics adapter attached to a monochrome monitor, you
may wish to force Springer to use text mode to display the board,
since light and dark squares may be hard to distinguish. You can
use the Options command to enable or disable graphics, as well as
sounds normally produced by the program.
Is Springer taking too long to make a move? Press ESC to force
the program to quit thinking and make a move. Of course this
will have some effect on the quality of Springer's move. Also,
the program's thinking time is relatively constant throughout the
game, and is up to the user through the choice of playing level,
as shown by the APPROXIMATE time chart below:
Level 0 1 2 3 4 5 6 7 8 9
---------+----+----+----+----+----+----+----+----+----+---
Min Time 0 5 10 15 20 25 30 35 40 45
Max Time 5 25 45 65 85 105 125 145 165 185
(Times are in seconds, and Max Time depends slightly on CPU.)
AUTOPLAY AND REFEREE MODES
--------------------------
If you wish, you can make Springer play against itself by
changing to AUTOPLAY mode using the A key from the command menu.
You will be prompted for playing levels for White and Black, and
you can choose to pit any level against any other level. It
might be entertaining, for instance, to watch "Springer Lev5"
play a game against "Springer Lev1". To get out of AUTOPLAY
mode, you can wait for either side to make a move, then press the
ESC key to go to the command menu, from which you can switch to
NORMAL or REFEREE mode, quit and start a new game, exit to DOS,
etc. To get out of AUTOPLAY immediately, you can press ESC
twice: the first ESC forces Springer to quit thinking about its
move, and the second ESC calls up the menu.
In REFEREE mode, two people can play a game against each other,
with Springer keeping track of the game and checking each move
3
for legality. REFEREE mode is also used to step backwards and
forwards through a game to review it one move at a time. I use
REFEREE mode to store and review my own tournament or casual
chess games, and to review them and print game scores to share
with friends. In order to keep track of such games, you can use
the Title command to enter a heading for the game (printed as
part of the game record) as well as a name for each player
involved. If you intend to use REFEREE mode this way, you should
know that changing between REFEREE, AUTOPLAY and NORMAL modes
alters the player names, so the best way is to enter REFEREE
mode, enter the heading and names, play through the game, and
then save it to an appropriately named disk file. In addition to
the Title option, the Draw and Resign options are available (in
REFEREE mode only) to correctly enter results of games recorded
this way.
You can switch between the different modes of play at any time,
and Springer automatically changes its mode when certain commands
are executed. For example, when a game is recalled from a disk
file, or when the takeback or replay commands are used, Springer
automatically enters REFEREE mode. You can change modes
afterward, of course, and when you change from REFEREE to NORMAL
mode you will be assigned the side whose turn it is to move.
REVIEWING GAMES
---------------
Games played with Springer can be reviewed one move at a time
using the takeback and replay (- and +) commands. This works out
nicely using the key sequences * - and * + with the chess board
always displayed. The rewind and fast-forward commands (using
the [ and ] keys) can be used to rapidly back up all the way to
the beginning of a game (or as far as desired) and watch the game
being replayed from start to finish (or stopping at any point in
between).
The rewind command ([) takes back moves one after another until
the beginning of the game is reached or a key is pressed,
redrawing the board between moves. If all you want to do is back
up as quickly as possible to the start of a game, you should do
this either using the menu or in text mode, but if you want to
watch the position closely while backing up, use graphics mode.
Fast-forward replays the game one move after another until a key
is pressed or the end is reached, showing each move clearly on
the board. I tend to use these commands to find the part of a
game I'm interested in, then use takeback and replay to study
that part of the game in detail. To me, this is one of the nice
things about Springer: it's so much easier to play through games
this way than with a real chess board and pieces -- and much
easier to set up for a new game!
Notice that whenever you use any of the above commands, Springer
automatically switches to REFEREE mode. You can use the takeback
command to give yourself a second chance if you enter the wrong
4
move, taking back the computer's reply, then your original move,
then switching back to NORMAL mode to enter your new move. If
you make a bad move and need to take it back this way, go right
ahead -- but don't forget to chalk one up to Springer!
PRINTING GAMES/POSITIONS
------------------------
You can use the Printer commands to print a record of the current
game or a diagram of the current position. Printed output goes
to the LPT1 device.
Game records are printed as numbered lists of moves in two
columns (for White and Black) using standard Algebraic chess
notation, which is the same notation used to indicate the last
move in Springer's on-screen display. If you are unfamiliar with
this notation, it shouldn't be too hard to learn by paying
attention to the way Springer displays moves during the course of
a game. The basis of this system of notation is the unique name
given to each square on the board: each file (vertical column of
squares on the diagram) is called by a letter a-h, while each
rank (horizontal row) is numbered 1-8, always starting with a1 in
the lower left corner of the diagram (White's Queen's Rook
square). A typical move is described by indicating the type of
piece moved and the ending square (Nf3 means Knight to f3), or
just the ending square for pawn moves (e.g. e5 for Pawn to e5).
Captures are indicated by an x, as in Nxf6. If another piece of
the same type could have moved to the same square, both starting
and ending squares are given (Nb1d2 means Knight from b1 to d2).
King- and Queen-side castling are indicated by O-O and O-O-O,
respectively.
Diagrams of the current position are printed using dot-matrix
graphics, and thus require a printer compatible with Epson
graphics commands. They are printed in a very legible format,
with a board size of approximately 2.5" square. Together with a
printed list of moves, these diagrams provide a nice hardcopy
record of the game.
SAVED GAMES AND DISK FILES
--------------------------
The Memory commands provide a way to store and retrieve complete
games on disk. For each game you wish to Save or Recall, you
must provide a complete DOS filename for a disk file to be either
read or written by Springer. You can specify any disk or
directory path as part of the filename. A List command is also
provided to show games that have already been saved on the
current disk directory. Each game file will take up 1024 bytes
of disk space, regardless of the length of the game. When a game
is Recalled from a file, the last position of the game is
reconstructed, and play resumes from this point. These disk
functions are the only feature of Springer requiring a version of
5
DOS more recent than 1.0.
There is plenty of room on a 360k DOS-formatted diskette for many
of your own saved game files, in addition to a copy of the
program file SPRINGER.COM. The distribution disk contains a
batch file CHESS.BAT which can be used to start Springer with
non-standard option settings. You can edit this batch file,
which contains a single command line, so that typing the command
"CHESS" will start a game with the display, level, and other
options set the way you like them, and then carry around your own
Springer setup and games on a single floppy disk.
Included on the distribution disk are a few example games you may
wish to look at, as well as a file containing this document. See
the file "READ.ME" for a list of the distribution files.
BACKGROUND
----------
This section gives the history of Springer, and is included for
user interest as well as for my own personal gratification.
Springer began in 1983 as one of several half-hearted projects of
the small electronics company I worked for at the time. After
devoting a minimum of time and effort (mine) to this project, the
company decided it would never result in a marketable product and
ceased work on the project entirely, and has thereafter abandoned
all such activities in favor of purely industrial markets.
Since leaving this company in 1988 I have resurrected Springer
and made many substantial improvements to the program, in playing
strength as well as features such as ease of use,
saving/recalling games on disk, printing positions and game
scores, etc. It is my intention to continue improving this
program, and I anticipate a dramatic increase in playing strength
in the near future.
Springer was written entirely in 8086 assembly language, for two
reasons: (1) Speed performance was critical. (2) No good
compiler language was available to me at the beginning of this
project (Anyone remember IBM's FORTRAN and Pascal versions 1.0?
At least MASM 1.0 WORKED!). Certain portions of such a program
are best written in assembly language for maximum performance,
but less demanding features such as disk and printer I/O,
handling player input, etc. could have been dealt with much
easier using a good Pascal compiler, for instance.
This program was begun when I was new to the 8086 architecture
and instruction set, and it contains a mixture of well-written
and not-so-well written sections of code. As always, I like to
think that a rewrite at this time would produce much slicker,
more polished source code. The philosophy behind choosing the
computer's move also underwent some radical changes during the
course of development, and the most major change in this respect
6
was just beginning when the original project was scrapped. I
have completed this change, which affects playing strength, as
well as completing the user interface features, and I believe
Springer is now a product worthy of your attention.
It turns out to be relatively easy for me to add or rearrange
major feature of the program now, despite the vast bulk of its
source code, and I intend to continue working on the program as
time and money permit, improving playing strength and adding or
improving peripheral features. I sincerely hope that you and
your friends will enjoy using Springer, and I welcome any
comments or suggestions you may have.
RIGHTS AND DISTRIBUTION
-----------------------
Springer is protected by copyright laws, though you are
encouraged to copy and share the unmodified program (Version 1.0)
and this documentation. If you find this program useful or
enjoyable, please help me continue to improve it, both by paying
the modest price of the latest available version, and by offering
your comments and suggestions.
About bugs: In the context of a program like this, what is a bug?
A programming error that makes your computer lock up, displays
gibberish on the screen, etc. obviously qualifies. If Springer
makes an illegal move, fails to correctly recall a game you
saved, etc. something is definitely wrong. An error that
results in silly or even stupid moves by the computer is much
more subtle, and much more difficult to diagnose as a true
programming error. After all, it may reflect a flaw in the
philosophy behind Springer's design, and not an error in
implementation. In any case, if you think you've found a bug in
Springer and are willing to take the trouble to report it, please
be specific regarding what you are doing when the bug shows
itself, as well as about exactly what happens afterward.
7
An updated version of Springer is available directly from the
author, along with a collection of 60 of Bobby Fischer's best
games on the same 5.25" diskette. To receive the latest version
available, send $12 to
Ken Goodman
218 N. 29th St.
Opelika, AL 36801
Please do not distribute unauthorized copies of this game
collection, or of versions of Springer other than version 1.0.
Complete source code for Springer (version 1.0 only) is also
available for the extremely curious. It is available on a single
5.25" diskette in the form of 8086 assembly language for $80.
The source code can be used or modified for the personal benefit
of the purchaser, but is not to be distributed, nor is it to be
used for any commercial purpose, without the prior written
permission of the author.
If you have specific errors to report, or specific changes to
suggest, please include them with your order. If possible, I
will include any error corrections or useful changes to the
program in the version I send you. If this is not practical,
then I will send you an updated version containing any useful
changes you suggest as soon as it becomes available, in addition
to prompt shipment of the latest release available when you
order.
Alabama residents: please add 4% sales tax.
For foreign orders, add appropriate postage for international
mail delivery.
DISCLAIMER: No warranty of any kind is claimed for this software
product, and the author specifically disclaims any implied
warranty of merchantability or fitness for a particular purpose,
as well as any responsibility for incidental or consequential
damages. Media conveying this software and purchased directly
from the author, if found to be physically defective in materials
or workmanship, will be replaced if returned within 10 days of
receipt.
8